


<template>
    <div class="model-form">
        <el-page-header @back="goBack" content="增加换电柜操作日志">
        </el-page-header>
        <div class="model-content">
            <el-form ref="ruleForm" :rules="rules" :model="form" label-width="160px">
                <el-row :gutter="10">
    <el-col :span="12">
            <el-form-item label="商户"  prop="shop">
        <el-select style="width: 100%;" v-model="form.shop" filterable clearable
                   placeholder="请选择">
            <el-option v-for="item in shopOptions" :key="item.id"
                       :label="item.name" :value="item.id">
            </el-option>
        </el-select>
            </el-form-item>

    </el-col>
    <el-col :span="12">
            <el-form-item label="管理员"  prop="staff">
        <el-select style="width: 100%;" v-model="form.staff" filterable clearable
                   placeholder="请选择">
            <el-option v-for="item in staffOptions" :key="item.id"
                       :label="item.name" :value="item.id">
            </el-option>
        </el-select>
            </el-form-item>

    </el-col>
    <el-col :span="12">
            <el-form-item label="换电柜"  prop="powerBank">
        <el-select style="width: 100%;" v-model="form.powerBank" filterable clearable
                   placeholder="请选择">
            <el-option v-for="item in powerBankOptions" :key="item.id"
                       :label="item.name" :value="item.id">
            </el-option>
        </el-select>
            </el-form-item>

    </el-col>
    <el-col :span="12">
            <el-form-item label="仓门号"  prop="doorNum">
        <nb-select catalog="powerBankLogDoorNum" v-model="form.doorNum"></nb-select>
            </el-form-item>

    </el-col>
    <el-col :span="12">
            <el-form-item label="操作途径"  prop="source">
        <nb-select catalog="powerBankLogSource" v-model="form.source"></nb-select>
            </el-form-item>

    </el-col>
    <el-col :span="12">
            <el-form-item label="类型"  prop="catalog">
        <nb-select catalog="powerBankLogCatalog" v-model="form.catalog"></nb-select>
            </el-form-item>

    </el-col>
    <el-col :span="12">
            <el-form-item label="描述"  prop="note">
        <el-input v-model="form.note" name="note" type="textarea"></el-input>
            </el-form-item>

    </el-col>
    <el-col :span="12">
            <el-form-item label="状态"  prop="state">
        <nb-select catalog="powerBankLogState" v-model="form.state"></nb-select>
            </el-form-item>

    </el-col>

                    <el-col :span="22">
                        <el-form-item>
                            <el-button @click="goBack">取消</el-button>
                            <el-button type="primary" @click="add">确定</el-button>
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
        </div>
    </div>
</template>

<script>
    import common from "@/mixins/common.js";
    import {ElLoading} from "element-plus";

    import nbSelect from "@/components/nbSelect.vue";

    export default {
        name: "PowerBankLog_add",
        mixins: [common],
        components: {nbSelect},
        data() {
            return {
                form: {
                    shop: '',
                    staff: '',
                    powerBank: '',
                    doorNum: '',
                    source: '',
                    catalog: '',
                    note: '',
                    state: ''                },
                shopOptions: [],
                staffOptions: [],
                powerBankOptions: [],
                rules: {
                    shop: [
                        {required: true, message: '请输入商户', trigger: 'blur'}
                    ],
                    staff: [
                        {required: true, message: '请输入管理员', trigger: 'blur'}
                    ],
                    powerBank: [
                        {required: true, message: '请输入换电柜', trigger: 'blur'}
                    ],
                }
            }
        },
        methods: {
            async add() {
                try {
                    let valid = await this.$refs["ruleForm"].validate();
                    if (!valid) {
                        return;
                    }
                } catch (e) {
                    return;
                }

                await this.addData();
            },
            async addData() {
                let data = this.form;
                const loading = ElLoading.service({
                    lock: true,
                    text: '数据处理中',
                    background: 'rgba(0, 0, 0, 0.7)',
                })

                let res = await this.$http.form("/powerBankLog/create", data);

                loading.close();

                if (res.code !== 200) {
                    this.$message.error(res.msg);
                    return;
                }

                this.$message({
                    message: '添加数据成功',
                    type: 'success'
                });
                this.$router.go(-1);
            },
            async loadShopOptions() {
                let self = this;
                let param = {};
                param.sortMethod = "asc";
                param.sortField = "id";
                param.level = 1;
                param.size = 500;
                param.fetch = 0;
                let res = await this.$http.form("/shop/list", param);
                if (res.code === 200) {
                    self.shopOptions = res.data;
                }
            },
            async loadStaffOptions() {
                let self = this;
                let param = {};
                param.sortMethod = "asc";
                param.sortField = "id";
                param.level = 1;
                param.size = 500;
                param.fetch = 0;
                let res = await this.$http.form("/staff/list", param);
                if (res.code === 200) {
                    self.staffOptions = res.data;
                }
            },
            async loadPowerBankOptions() {
                let self = this;
                let param = {};
                param.sortMethod = "asc";
                param.sortField = "id";
                param.level = 1;
                param.size = 500;
                param.fetch = 0;
                let res = await this.$http.form("/powerBank/list", param);
                if (res.code === 200) {
                    self.powerBankOptions = res.data;
                }
            },

        },
        mounted() {
            this.loadShopOptions();
            this.loadStaffOptions();
            this.loadPowerBankOptions();
        }
    }

</script>

<style scoped>
</style>